package com.test.myspringproject;

import java.lang.ref.SoftReference;

public class SoftReferenceExample {
    public static void main(String[] args) {
        Object obj = new Object();
        SoftReference<Object> softRef = new SoftReference<>(obj);

        // 清除强引用
        obj = null;

        // 模拟内存不足
        // 这里使用一个大数组来模拟内存不足的情况
        byte[] largeArray = new byte[1024 * 1024 * 10]; // 10 MB

        // 执行垃圾回收
        System.gc();

        // 检查软引用是否还有效
        if (softRef.get() != null) {
            System.out.println("Soft reference still valid.");
        } else {
            System.out.println("Soft reference cleared.");
        }
    }
}
